package cc.lj.internal.coupons.infrastructure.excepion;


import cc.lj.internal.core.exception.IGlobalExceptionEnum;

/**
 * 微信发券服务异常
 *
 * 一共 10 位，分成四段
 *
 * 第一段，1 位，类型
 *      1 - 业务级别异常
 *      2 - 系统级别异常
 * 第二段，3 位，系统类型
 *      001 - 热数据系统
 *      002 - 商户系统
 *      003 - 订单系统
 *      004 - 收款系统
 *      005 - 电子券劵系统
 *      ... - ...
 * 第三段，3 位，模块
 *      不限制规则。
 *      一般建议，每个系统里面，可能有多个模块，可以再去做分段。以用户系统为例子：
 *          001 - OAuth2 模块
 *          002 - User 模块
 *          003 - MobileCode 模块
 * 第四段，3 位，错误码
 *       不限制规则。
 *       一般建议，每个模块自增。
 */

public enum CoupousExceptionEnum implements IGlobalExceptionEnum{

    //==========抢券系统=============
    INSERT_CAP_BATCH_FAILED(1005001001,"新增封顶额活动表数据失败"),
    CAP_BATCH_LIST_NULL(1005001003,"封顶额活动批次表数据LIST查询为NULL"),
    UPDATE_CAP_BATCH_FAILED(1005001005,"通过主键修改封顶额活动批次表数据失败"),
    CAP_BATCH_NOT_FOUND(1005001007,"通过主键查询封顶额活动批次表数据为NULL"),
    MART_CAP_DATE_ERROR(1005001002,"活动截止日期不能早于开始日期"),
    DELETE_CAP_BATCH_FAILED(1005001009,"通过主键逻辑删除封顶额活动批次表失败"),
    TOTAL_SHARE_FAILED(1005001011,"封顶额活动券批次商户分摊+卖场分摊比例总和必须=100"),
    TICKET_BATCH_USED(1005001013,"该电子券批次已被其他封顶额活动绑定"),
    TICKET_BATCH_LIST_NULL(1005001015,"电子券批次表list查询数据为NULL"),
    UPDATE_TICKET_BATCH_FAILED(1005001017,"通过主键更新电子券批次表失败"),
    TICKET_BATCH_NOT_FOUND(1005001019,"通过主键查询电子券批次表单条数据为NULL"),
    TIKCT_BATH_BINDED(1005001021,"电子券批次已被其他活动绑定"),
    ACTIVITY_CODE_BINDED(1005001023,"该活动编号已被其他电子券批次绑定"),
    MART_CAP_MYSQL_INSERT(1005001004,"向活动表添加数据时出现错误[DAO]"),
    MART_CAP_MYSQL_SELECT(1005001006,"数据库中没有查询到该id对应的封顶额活动表记录" ),
    MART_CAP_MODIFY_STARTTIME(1005001008, "活动已开始，不允许修改开始日期"),
    MART_CAP_IS_OVER(1005001010, "活动已结束，不能修改封顶额活动"),
    MART_CAP_STARTED(1005001025, "活动已开始，不能修改封顶额活动批次数据"),
    MART_CAP_STARTED_NOT_DELETE_BATCH(1005001027, "活动已开始，不能删除封顶额活动批次数据"),
    MULTIPLE_MODEL_INSERT_ERROR(1005001012, "插入倍数模型表失败"),
    MULITPLE_UPDATE_MARTCAP_ERROR(1005001014, "当前封顶额活动已经开始，不能修改倍数模型"),
    MULTIPLE_MODEL_UPDATE_ERROR(1005001016, "数据库修改倍数模型表失败"),
    INSERT_CAP_MERCHANT_FAILED(1005001029, "新增封顶额商户表数据失败" ),
    DELETE_CAP_MERCHANT_FAILED(1005001031, "删除封顶额商户表数据失败" ),
    CAP_MERCHANT_LIST_NULL(1005001033, "查询封顶额商户表list数据为NULL" ),
    MART_ENDED_NOTDELETE_MERCHANT(1005001035, "活动已结束，不可删除商户数据" ),
    MART_STARTED_NOTDELETE_MERCHANT(1005001037, "活动已开始且该商户封顶额>0，不可删除商户数据" ),
    CAP_MERCHANT_GETONE_IS_NULL(1005001039, "通过主键查询卖场封顶额商户数据为NULL" ),
    MERCHANT_CREATEED_CAP_VALUE(1005001041, "该商户已经生成封顶额，不能重复生成！" ),
    UPDATE_CAP_MERCHANT_FAILED(1005001043, "通过主键修改封顶额商户表失败" ),
    MART_ENDED_NOT_CREATE_CAPVALUE(1005001045, "活动结束后不能生成封顶额！" ),
    MODEL_NOT_NOCAPVALUE_MERCHANT(1005001047, "该倍数模型下没有选择商户或者全部商户都已经生成封顶额！" ),
    GETONE_MODEL_NULL(1005001049, "通过主键查询倍数模型表数据为NULL" ),
    MART_CAP_ENDED_NOTUPDATE_BATCH(1005001051, "活动已结束，不可修改批次"),
    MART_CAP_ENDED_NOTDELETE_BATCH(1005001053, "活动已结束，不可删除批次"),
    UPDATE_TICKET_PAY_RECORD_FAILED(1005001055, "通过主键修改合同收券表失败"),
    INSERT_TICKT_PAY_RECORD_FAILED(1005001057, "新增合同收券表失败"),
    TICKET_PAY_RECORD_LIST_IS_NULL(1004001059,"查询合同收券记录表list为NULL"),
    BATCH_BIND_RELATION_LIST_NULL(1004001061, "查询券批次绑定关系表查询数据无数据"),
    BATCH_BIND_RELATION_ONE_IS_NULL(1004001063, "通过主键查询券批次绑定关系表查询数据为NULL"),
    TICKET_MAIN_LIST_NULL(1004001065, "批量查询电子券主表ticket_main查询数据为NULL"),
    UPDATE_TICKET_MAIN_FAILED(1004001067, "通过主键更新ticket_main表失败"),
    TICKET_MAIN_NOT_FOUND(1004001069, "通过主键查询ticket_main表为NULL"),
    GET_TICKET_MAIN_BY_USECODE_IS_NULL(1004001071,"使用码不存在"),
    USE_TICKET_PRICE_ERROR(1004001073, "电子券面额大于剩余金额，不可使用" ),
    TICKET_USED(1004001075,"使用码已使用" ),
    TICKET_CANCEL(1004001077, "使用码已作废"),
    TICKET_EXPIRE(1004001079, "使用码已过期"),
    TICKET_ASTRICT_RULE_ERROR(1004001081, "此券不允许转赠，当前合同手机号与领券手机号不一致！"),
    TICKET_CONTINUE_LIST_ERROR(1004001083,"通过电子券批次主键查询连续有效期表数据无数据！" ),
    TICKET_NO_STAET(1004001085,"券未开始使用" ),
    TICKET_SEND_OBJEDT_ISNULL(1004001087,"此券领取手机号为空，请先通过小程序绑定下单手机号，再用券" ),
    UPDATE_TICKET_BATCH_MERCHANT_FAILED(1004001089, "通过主键修改电子券黑白名单商户表失败" ),
    TICKET_BATCH_MERCHANT_GETONE_NULL(1004001091, "通过主键查询电子券黑白名单表为null，无数据"),
    USE_TICKET_CHECK_IS_BLACK(1004001093, "该商户是黑名单商户"),
    USE_TICKET_MERCHANT_NOT_IN_WHITE(1004001095, "该商户不在白名单商户中"),
    TICKET_CUR_USED(1004001097, "该电子券正在被使用中，不可重复使用！"),
    REDIS_USE_TICKET_NOT_DATA(1004001099, "该电子券在redis中的已用券列表中并没有存在数据，数据异常!"),
    REDIS_USE_BATCH_NOT_DATA(1004001101, "该电子券在redis中的已用券批次数量中并没有存在数据，数据异常!"),
    USE_TICKET_CHECK_UUID_IS_NULL(1004001103, "电子券用券验证规则时，会话UUID为NULL"),
    TICKET_LIMIT_VALUE_ERROR(1004001105, "剩余用券额度未达到券满减条件"),
    USE_TICKET_MOST_ADD_NOT(1004001107, "该券批次不允许阶梯累加使用"),
    USE_TICKET_MORETHAN_MOST_ADDNUM(1004001109,"该批次券超过最多累加张数" ),
    USED_LIST_HASH_SINGLE(1004001111,"已用券中存在独立使用券，不能与其他批次券共用"),
    USED_TICKET_CUR_SINGLE(1004001113, "当前券是独立使用券, 已用券列表中存在其他批次券，不能与其他批次券共用"),
    CHILD_TICKTE_USE_ERROR(1004001115,"该券为副券，若要使用，请至少先使用1张主券！" ),
    REDIS_USE_BATCH_LIMIT_VALUE_IS_NULL(1004001117, "Redis中满减额度空间数据为NULL"),
    DELETE_USE_TICKET_REDIS_USELIST_IS_NULL(1004001119, "删除用券时发现redis中已用券列表数据为NULL" ),
    DELETE_USE_TICKET_REDIS_TICKET_IS_NULL(1004001121, "删除用券时发现redis已用券列表中并没有该电子券" ),
    UPDATE_TICKET_PACKAGE_BATCH_FAILED(1004001123, "通过主键修改券包与批次关系表失败" ),
    UPDATE_TICKET_PACKAGE_FAILED(1004001125, "通过主键修改券包表失败"),
    TICKET_PACKAGE_NOT_FOUND(1004001127, "通过主键查询券包表数据为NULl,无数据" ),
    TICKET_PACKAGE_BATCH_NOT_FOUND(1004001129, "通过主键查询券包批次表数据为NULL, 无数据"),
    PACKAGE_ISBIND(1004001131,"该券包已被其他活动关联"),
    GET_TICKET_PACKAGE_BACH_FAILED(1004001133, "通过券包主键查询券包与批次关系表无数据"),
    FEIGN_DOMAIN_TICKET_SENDTICKET_ERROR(1004001135, "Feign调用内网发券包时，内网Feign调用domain_ticket发券接口失败");

    private int code;
    //错误提示
    private String message;
    //构造器
    CoupousExceptionEnum(int code, String message) {
        this.code = code;
        this.message = message;
    }
    public int getCode() {
        return code;
    }
    public String getMessage() {
        return message;
    }
    public void setCode(int code) {
        this.code = code;
    }
    public void setMessage(String message) {
        this.message = message;
    }
}
